package com.urfresh.sp.flume.dto.v2;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.NotEmpty;

/**
 * Created by urfresh.mark on 2016/8/24.
 */
public class SysInfo extends AppBaseInfo {


    @ApiModelProperty(value = "用户的公网ip，该字段无需用户传递", required = false)
    @JSONField(serialize = false)
    String ip;

    @ApiModelProperty(value = "平台系统", required = true)
    @NotEmpty(message = "平台系统不能为空")
    @JSONField(ordinal = 6)
    String platform;

    @ApiModelProperty(value = "平台系统版本", required = true)
//    @NotEmpty(message = "平台系统版本不能为空")
    @JSONField(ordinal = 7)
    String platVer;

    @ApiModelProperty(value = "手机网络类型", required = true)
//    @NotEmpty(message = "手机网络类型不能为空")
    @JSONField(ordinal = 8)
    String netType;

    @ApiModelProperty(value = "运营商", required = true)
//    @NotEmpty(message = "运营商不能为空")
    @JSONField(ordinal = 9)
    String provider;

    @ApiModelProperty(value = "手机品牌", required = true)
//    @NotEmpty(message = "手机品牌不能为空")
    @JSONField(ordinal = 10)
    String phoneType;

    @ApiModelProperty(value = "客户端纬度", required = false)
    @JSONField(ordinal = 11)
    String latitude;

    @ApiModelProperty(value = "客户端经度", required = false)
    @JSONField(ordinal = 12)
    String longitude;

    @ApiModelProperty(value = "android设备的渠道来源,ios目前无法追述到", required = false)
    @JSONField(ordinal = 13)
    String sourceId;

    @ApiModelProperty(value = "app当前版本", required = true)
    @NotEmpty(message = "app当前版本不能为空")
    @JSONField(ordinal = 14)
    String appVer;

    @ApiModelProperty(value = "上次app的退出时间", required = false)
    @JSONField(ordinal = 15)
    String exitTime;

    @ApiModelProperty(value = "用户Id", required = false)
    @JSONField(ordinal = 16)
    String userId;

    @ApiModelProperty(value = "track信息，默认为空", required = false)
    String trackInfo;

    @ApiModelProperty(value = "推送信息的注册id", required = false)
    String pushRegistrationId;
    
    String createTime;

    public String getPushRegistrationId() {
        return pushRegistrationId;
    }

    public void setPushRegistrationId(String pushRegistrationId) {
        this.pushRegistrationId = pushRegistrationId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
    
    public String getTrackInfo() {
        return trackInfo;
    }

    public void setTrackInfo(String trackInfo) {
        this.trackInfo = trackInfo;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public String getPlatVer() {
        return platVer;
    }

    public void setPlatVer(String platVer) {
        this.platVer = platVer;
    }

    public String getNetType() {
        return netType;
    }

    public void setNetType(String netType) {
        this.netType = netType;
    }

    public String getProvider() {
        return provider;
    }

    public void setProvider(String provider) {
        this.provider = provider;
    }

    public String getPhoneType() {
        return phoneType;
    }

    public void setPhoneType(String phoneType) {
        this.phoneType = phoneType;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getSourceId() {
        return sourceId;
    }

    public void setSourceId(String sourceId) {
        this.sourceId = sourceId;
    }

    public String getAppVer() {
        return appVer;
    }

    public void setAppVer(String appVer) {
        this.appVer = appVer;
    }

    public String getExitTime() {
        return exitTime;
    }

    public void setExitTime(String exitTime) {
        this.exitTime = exitTime;
    }

//    public String getSignValue(){
//        return this.getAndroidId()+this.getIdfa()+this.getUserName()+this.getAppId()+this.getOpenId()+this.getSubmitTime()
//                +this.getPlatform()+this.getPlatVer()+this.getNetType()
//                +this.getProvider()+this.getPhoneType()+this.getLatitude()
//                +this.getLongitude()+this.sourceId+this.getAppVer()+this.getExitTime();
//    }

}
